Kurvenscheiben-Antrieb mit Hilfe einer virtuellen Zeitachse steuern
Sehen Sie hierzu das Beispielprojekt PLCopenMulti.project
im Installationsverzeichnis von CODESYS unter ..\CODESYS SoftMotion\Examples
.
Das folgende Beispiel demonstriert, wie Sie eine periodische Kurvenscheibe auf einen linearen Antrieb umsetzen. Das Beispiel zeigt weiterhin, wie Sie die Nockenfunktion anwenden können.
Fügen Sie im Gerätebaum unter Applikation eine Kurvenscheibe mit dem Namen
Example
ein. Öffnen Sie die Kurvenscheibe im Editor.Definieren Sie in der Registerkarte Nocken eine Nocke.
X:
8.0
positiver Durchlauf:
Invertieren
negativer Durchlauf:
Invertieren
Fügen Sie im Gerätebaum unter SoftMotion General Axis Pool einen virtuellen Antrieb mit dem Namen
Drive
ein. Wählen Sie für diese Achse den Achstyp Modulo mit einem Modulowert von360
.Fügen Sie einen weiteren virtuellen Antrieb mit dem Namen
Virtual
ein. Wählen Sie für diese Achse den Achstyp Modulo mit einem Modulowert von10
.Erstellen Sie ein Programm MOTION_PRG in der Sprache CFC.
PROGRAM MOTION_PRG VAR power1, power2: MC_Power; TableSelect: MC_CamTableSelect; CamIn: MC_CamIn; Tappet: SMC_GetTappetValue; MoveVirtual: MC_MoveVelocity; END_VAR
Fügen Sie einen Baustein ein und weisen Sie ihm die Variable
power1
zu. Der Baustein dient dem Einschalten des Antriebs vonDrive
.Belegen Sie die Eingänge wie folgt:
Axis:
Drive
Enable:
TRUE
bRegulatorOn:
TRUE
bDriveStart
TRUE
Fügen Sie einen Baustein ein und weisen Sie ihm die Variable
power2
zu. Der Baustein dient dem Einschalten des Antriebs vonVirtual
.Belegen Sie die Eingänge wie folgt:
Axis:
Virtual
Enable:
TRUE
bRegulatorOn:
TRUE
bDriveStart
TRUE
Fügen Sie einen Baustein ein und weisen Sie ihm die Variable
MoveVirtual
zu. Der Baustein dient der Bewegung des virtuellen Masters.Belegen Sie die Eingänge wie folgt:
Axis:
Virtual
Execute:
power2.Status
Velocity:
2
Acceleration
10
Deceleration
10
Direction
positive
Fügen Sie einen Baustein ein und weisen Sie ihm die Variable
TableSelect
zu. Der Baustein dient der Auswahl der Kurvenscheibe.Belegen Sie die Eingänge wie folgt:
Master:
Virtual
Slave:
Drive
CamTable:
Example
Execute
TRUE
Periodic
TRUE
MasterAbsolute
TRUE
SlaveAbsolute
TRUE
Fügen Sie einen Baustein ein und weisen Sie ihm die Variable
CamIn
zu. Der Baustein setzt die ausgewählte Kurvenscheibe um.Belegen Sie die Eingänge wie folgt:
Master:
Virtual
Slave:
Drive
Execute
power1.Status
MasterOffset:
0
SlaveOffset:
0
MasterScaling:
1
SlaveScaling:
1
StartMode:
absolute
CamTableID:
TableSelect.CamTableID
VelocityDiff:
1
Acceleration:
1
Deceleration:
1
TappetHysteresis:
1
Fügen Sie einen Baustein ein und weisen Sie ihm die Variable
Tappet
zu. Der Baustein überprüft die Stellung des Nockenschalters.Belegen Sie die Eingänge wie folgt:
Tappets:
CamIn.Tappets
iID:
1
bInitValue
FALSE
bSetInitValueAtReset:
FALSE
Die Nocke ist als invertierende Nocke definiert. Deshalb wird sie alle 10 Sekunden ihren Wert ändern.
Im Beispielprojekt sehen Sie eine Visualisierung, mit deren Hilfe Sie die einzelnen Bausteine und die Position der Achsen überprüfen können.
Fügen Sie den Aufruf des Programms
MOTION_PRG
zur Task MainTask hinzu.Laden Sie das Projekt auf die Steuerung und starten Sie es.
Für weitere Informationen siehe: